In [1]:
import plotly.graph_objects as go
import numpy as np
import plotly
plotly.offline.init_notebook_mode()
# Create figure with slider
fig = go.Figure()
x = np.linspace(0, 10, 1000)
initial_freq = 1
fig.add_trace(go.Scatter(x=x, y=np.sin(2 * np.pi * initial_freq * x)))
# Create slider steps
steps = []
for freq in range(1, 51):
step = dict(
method="restyle",
args=[{"y": [np.sin(2 * np.pi * freq * x)]}],
label=f"{freq} Hz"
)
steps.append(step)
# Configure the slider
sliders = [dict(
active=0,
currentvalue={"prefix": "Frequency: "},
steps=steps
)]
fig.update_layout(
sliders=sliders,
title="Interactive Sine Wave",
height=600
)
fig.show()
In [ ]: